# list列表：[元素，元素，元素，...]

# 定义一个list
my_list = ["Darwin", "Linux", "Windows"]
print(my_list)
print(len(my_list))
print(type(my_list))

my_list = ["hello", 666, True]  # list可以容纳不同类型的数据
print(my_list)
print(type(my_list))

my_list = [[1, 2], [4, 5]]  # list可嵌套list
print(my_list)
print(type(my_list))

# list下标（索引）
# 下标可 从前向后从零开始，每次+1 或 从后向前从-1开始，每次-1
my_list = ["Darwin", "Linux", "Windows"]
print(my_list[0])

my_list = [[1, 2], [4, 5]]
print(my_list[0][0])

# 列表的方法

# <1> 功能：查找指定元素在列表的下标，如果找不到，报错ValueError
#     语法：列表.index(元素）          （index就是列表对象（变量）内置的方法（函数））
my_list = ["Darwin", "Linux", "Windows"]
index = my_list.index("Darwin")
print(index)  # 打印相应下标

# <2> 功能：修改指定的元素值（可重新赋值）
#     语法：列表[下标] = 值
my_list[0] = "best"
print(my_list[0])

# <3> 功能：在指定的下标位置，插入指定的元素
#     语法：列表.insert(下标，元素）
my_list.insert(0, "Darwin")
print(my_list)

# <4> 功能：在列表尾部追加新元素
#     语法：列表.append(元素）       --对单个元素
#          列表.extend(其他数据容器）--将其他数据容器的内容取出，依次追加到列表尾部
my_list.append("game over")
print(my_list)

my_lists = [1, 2, 3]
my_list.extend(my_lists)  # my_list.extend([1, 2, 3])
print(my_list)

# <5> 功能：删除元素
#     语法1：del 列表[下标]
#     语法2：列表.pop(下标）
del my_list[1]
print(my_list)
element = my_list.pop(3)  # 取出元素作为返回值
print(my_list)
print(element)

# <6> 功能：删除某元素在列表中的第一个匹配项（从前往后搜索，只能删除一个）
#     语法：列表.remove(元素）
my_list = ["Darwin", "Linux", "Windows", "Linux"]
my_list.remove("Linux")
print(my_list)

# <7> 功能：清空列表
#     语法：列表.clear()
my_list.clear()
print(my_list)

# <8> 功能：统计某元素在列表内的数量
#     语法：列表.count(元素）
my_list = [1, 1, 2, 3]
print(my_list.count(1))

# <9> 功能：统计列表中全部元素数量
#     语法：len(列表）
print(len(my_list))
